package com.wu.util;

import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.util.ByteSource;

/**
 * @author wuyanshen
 * @date 2019-01-15 9:55 AM
 * @discription 密码加密工具类,支持MD5 和 SHA1加密
 */
public class EncryptUtil {

    /**
     * 加密方法
     *
     * @param userName
     * @param password
     * @param encryptStr 加密类型 MD5 | SHA1
     * @return java.lang.String
     * @date 2019/1/15 9:58 AM
     * @author wuyanshen
     */
    public static String encrypt(String userName,String password,String encryptStr) {
        //加密内容-->密码
        Object credit = password;
        //盐值-->不同用户相同的密码,加密出来的值也会不一样,如果盐值为空时,加密的值就一样了
        ByteSource salt = ByteSource.Util.bytes(userName);
        //加密类型 MD5 | SHA1
        String algorithmName = encryptStr;
        Object result = new SimpleHash(algorithmName, credit, salt, 1024);
        return result.toString();
    }
}
